package com.ynet.middleground.user.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 自然人基本信息表
 * </p>
 *
 * @author DaiGaoLe
 * @since 2019-10-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ur_natural_person_base_information")
public class NaturalPersonBaseInformation extends Model<NaturalPersonBaseInformation> {

    private static final long serialVersionUID = 1L;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 性别
     */
    private String gender;

    /**
     * 本单位工作年限
     */
    private String workingYears;

    /**
     * 单位地址
     */
    private String unitAddress;

    /**
     * 单位名称
     */
    private String entityName;

    /**
     * 单位性质
     */
    private String unitNature;

    /**
     * 个人年收入
     */
    private BigDecimal personalAnnualIncome;

    /**
     * 个人身份证明(影像资料)
     */
    private String personalIdentificationUrl;

    /**
     * 工资发放日
     */
    private Date payDay;

    /**
     * 婚姻状况
     */
    private String maritalStatus;

    /**
     * 家庭住址
     */
    private String homeAddress;

    /**
     * 居住状况
     */
    private String livingConditions;

    /**
     * 民族
     */
    private String nation;

    /**
     * 配偶姓名
     */
    private String spouseName;

    /**
     * 配偶证件类型
     */
    private String spouseCertificateType;

    /**
     * 配偶证件号码
     */
    private String spouseCertificateNo;

    /**
     * 配偶手机号码
     */
    private String spouseTelephone;

    /**
     * 收入来源
     */
    private String incomeSource;

    /**
     * 银行卡信息(影像资料)
     */
    private String bankCardInfoUrl;

    /**
     * 银行开户行
     */
    private String bankOpenBank;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 证书类型
     */
    private String certificatesforType;

    /**
     * 职业
     */
    private String occupation;

    /**
     * 创建时间
     */
    private LocalDateTime gmtCreate;

    /**
     * 创建人
     */
    private Integer createBy;

    /**
     * 修改时间
     */
    private LocalDateTime gmtModified;

    /**
     * 修改人
     */
    private Integer modifiedBy;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 电话
     */
    private String telephone;

    /**
     * 渠道
     */
    private String channel;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证,05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证
     */
    private String papersType;

    /**
     * 证件编号
     */
    private String papersNo;

    /**
     * 删除渠道用户,存放的是一个集合,渠道集合
     */
    private String deleteChannelUsers;

    /**
     * 用户锁定状态，存放的是一个集合,渠道集合
     */
    private String channelUnlockState;

    /**
     * 经营地址(或者是家庭住址)
     */
    private String userAddress;
    
    /**
     * 锁定状态0:正常1:锁定
     */
    private String isUnlock;

    /**
     * 邀请人邀请码
     */
    private String enteredInviteCode;

    //所属业态公司id
    private String authorizedFormats;

    //锁定业态公司id
    @TableField(fill = FieldFill.UPDATE)
    private Integer formatUnlockState;

    /**
     * 渠道授权,存放的是一个集合,渠道集合
     */
    private String authorizedChannels;

    @Override
    protected Serializable pkVal() {
        return this.userId;
    }

}
